import config from './config'
import Vue from 'vue'
/**
 * 初始化API配置
 * @param {Object} vm Vue实例
 */
export default function initApi(vm) {
  // 设置全局配置
  uni.$u.http.setConfig((defaultConfig) => {
    // 默认配置
    let baseURL = config.baseURL;
    
    // 如果是H5环境且是开发环境，使用空baseURL（使用相对路径）
    // #ifdef H5
    if (process.env.NODE_ENV === 'development') {
      baseURL = '';
    }
    // #endif
    
    const baseConfig = {
      baseURL: baseURL,
      dataType: 'json', 
      responseType: 'text',
      header: {
        'content-type': 'application/json;charset=UTF-8'
      },
      // 自定义参数
      custom: {
        loading: true, // 默认显示loading
        auth: true,    // 默认需要token验证
        toast: true,   // 默认显示错误提示
        catch: true    // 默认捕获异常
      }
    }
    
    // 合并配置
    return { ...defaultConfig, ...baseConfig }
  })
  
  // 挂载到Vue原型
  Vue.prototype.$api = {
    // 可以在这里添加一些全局方法
    setToken(token) {
      uni.setStorageSync('token', token)
    },
    
    clearToken() {
      uni.removeStorageSync('token')
    },
    
    // 获取token
    getToken() {
      return uni.getStorageSync('token')
    },
    
    // 判断是否登录
    isLogin() {
      return !!this.getToken()
    },
    
    // 登出
    logout() {
      this.clearToken()
      // 跳转到登录页
      uni.reLaunch({
        url: '/pages/login/login'
      })
    }
  }
}
